-
【翻译✍️】在 Rust 中,想要实现一个类型的值在不同的线程或者异步任务中正常使用(确切的来说应该是无data race的读写),该类型必须实现两个标记 Trait: Send+Sync。而作者这篇文章旨在通过一系列的例子,来指明在某种程度上我们对 Send Trait 存在的误解,即 Send 应该指的:是不同的线程在不同的时间安全的使用;而不是我们下意识认为的:将一个类型的值从一个线程发送到另外一个线程。借此回答了作者在 Reddit 上看到的一个有趣的问题:为什么 Mutex<T> 想要保证线程安全就必须确保类型 T 实现了 Send Trait。
2024
-
本文主要介绍了本人在学习和了解分布式一致性算法 Paxos 和 Raft 时候的一点浅浅的记录,以及一些学习资料链接。
2023
-
go 既拥有 if,for,switch,goto 这四种常见的控制语句,也拥有在一个单独的 goroutine 中运行代码的 go 语句,这篇文章主要谈论人们较少提及的 defer、panic、recover 语句。
-
在传统的 git 后端服务中,首要面对的挑战就是存储容量上限问题和用户并发访问高负载问题。本文简要概述 git 后端服务的架构,以及一些有用的文章。
-
本文基于官方文档介绍 golang 标准库中提供的堆/优先队列的使用方法。
2022
-
基于腾讯云cvm的云原生环境搭建,所有操作基于腾讯云 cvm 实例。
2021
-
matplotlib.pyplot.quiver使用指南,包括基本的函数参数介绍与示例程序。这是我在CSDN写过所有的博客里面至今为止浏览量和收藏最多的文章,所以在迁移博客的时候也一并迁移过来了。
-
简单讲述了 MySQL 的逻辑架构以及事务的本质,记录了 MySQL 处理死锁的方式以及事务日志与 MVCC 的底层实现。
-
Linux 环境下的 Python 开发基础教程。